OSINT cockpit: wire the full 11-dim V3 stacked cascade + runtime bake#68
Conversation
…:is_a cascade - osint_v3.soa: 611 records x 36B (row_id u32 | GUID1 16B | GUID2 16B), classid 0x1000_0700/0701 - codebook from aiwc.ods controlled vocab (12 AIRO dims + McClelland); max cardinality 30 -> u8 - 45 dual-use HIP basins emerge from militaryUse:civicUse prefix (islands collapse to adjacency) - 133 persons carry McClelland GUID2; NARS reasoning spread rewired over the baked edges (nars_spread.json) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MLBnPuScZy6w9di2QEjsXM
…heories, NARS deduction+revision) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MLBnPuScZy6w9di2QEjsXM
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MLBnPuScZy6w9di2QEjsXM
Stack ALL used AIRO/VAIR properties, not just the original 6 dual-use axes: - value tenant (osint_gotham): add bytes 7..=11 — currentStatus, type, output, impact, stakeholder — completing the 6x(8:8) cascade (odd:even orthogonal pairs: currentStatus:type, militaryUse:civicUse, MLTask:MLType, purpose:capacity, output:impact, stakeholder:airo:type). Bytes 1..=6 unchanged (client + committed asset stay compatible). - facet EDGES: add rel 16..20 + FACET_AXES entries so every stacked dim is a traversable entity->SchemaValue edge (toggleable layer), not just a hot tenant. - 5 new closed codebooks from aiwc.ods (+ observed values). - main.rs: OSINT_SOA now bakes at startup from the on-disk enriched harvest (LazyLock, CARGO_MANIFEST_DIR-anchored path) with a committed-asset fallback, so Railway serves the fully-wired scene without a pre-baked asset regen. - cockpit/public/aiwar_graph.json: enriched (15-agent sweep vs aiwc.ods vocab) — currentStatus/type/stakeholder/airo:type now 100%, +1133 filled cells. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MLBnPuScZy6w9di2QEjsXM
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (8)
📝 WalkthroughWalkthroughUpdates OSINT SoA serving to load ChangesOSINT V3 runtime bake and facet completion
Estimated code review effort: 3 (Moderate) | ~25 minutes Possibly related PRs
Poem
✨ Finishing Touches📝 Generate docstrings
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: dda56d82b6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| concat!(env!("CARGO_MANIFEST_DIR"), "/../../cockpit/public/aiwar_graph.json"), | ||
| "cockpit/public/aiwar_graph.json", |
There was a problem hiding this comment.
Prefer the enriched bake over the base public graph
In a source checkout like this one, cockpit/public/aiwar_graph.json exists, has only the 221 base nodes, and there is no cockpit/cypher; because these public-graph candidates are tried before the enriched harvest paths or the committed 920-node fallback asset, /osint.soa now runtime-bakes the base graph and silently drops the enriched scene the route used to serve. This affects any deployment that ships the repo/public files alongside the binary.
Useful? React with 👍 / 👎.
| "osint: baked {} nodes from {path} (11-dim V3 stacked cascade)", | ||
| graph.nodes.len() | ||
| ); | ||
| osint_gotham::osint_soa_bytes(&graph, &rounds) |
There was a problem hiding this comment.
Preserve tenant bytes in the runtime SoA bake
When a runtime graph candidate is found, this returns osint_soa_bytes, but that serializer stops after the label tail and does not append the nodeCount * 6 tenant bytes that the existing assets/osint_scene.soa contains. In that path cockpit/src/OsintGraph.tsx decodes tenants as null, so the facet-lens buttons are shown but cannot recolor or produce legends; append the tenant tail here or keep serving a bake that includes it.
Useful? React with 👍 / 👎.
| (&["currentStatus", "currentStatus:airo"], REL_FACET_STATUS), | ||
| (&["type"], REL_FACET_TYPE), | ||
| (&["output", "output:airo"], REL_FACET_OUTPUT), | ||
| (&["impact", "impact:vair"], REL_FACET_IMPACT), | ||
| (&["stakeholder"], REL_FACET_STAKEHOLDER), |
There was a problem hiding this comment.
Keep new facet rels in the dimension layer
These new rel codes 16–20 are described as toggleable facet edges, but the UI still classifies only 8 and 10..15 as facet/dimension rels while rendering every r >= 2 in the semantic graph. As soon as V3 data emits currentStatus, type, output, impact, or stakeholder edges, they stay visible even when the “family concepts”/dimension layer is hidden and are labeled as generic related, cluttering the default entity graph.
Useful? React with 👍 / 👎.
What
Wires the OSINT cockpit to stack all used AIRO/VAIR properties as the V3
6×(8:8)cascade — not just the original 6 dual-use axes — and bakes the scene at runtime from the enriched harvest so it's testable on Railway without regenerating the pre-baked asset.Why
The
spread · OSINTcockpit was rendering ~1 of 12 dimensions wired (typeonly, the rest islands). Coverage measured on the real 611-node harvest: onlytype/stakeholderfilled, seven dims at 0%. This completes the stack.Changes
crates/cockpit-server/src/osint_gotham.rs— the bake7..=11(currentStatus, type, output, impact, stakeholder) completing the6×(8:8)cascade. Bytes1..=6unchanged → client + committed asset stay compatible.currentStatus:type · militaryUse:civicUse · MLTask:MLType · purpose:capacity · output:impact · stakeholder:airo:type.rel 16..20+FACET_AXESentries so every stacked dim is a traversableentity → SchemaValueedge (a toggleable layer), not just a hot tenant byte.aiwc.ods(+ observed values).crates/cockpit-server/src/main.rs— servingOSINT_SOAnow bakes at startup from the on-disk enriched harvest (LazyLock,CARGO_MANIFEST_DIR-anchored path) via the extendedosint_soa_bytes, with a fallback to the committed asset if the harvest is absent. No pre-baked-asset regen needed for Railway.cockpit/public/aiwar_graph.json— dataaiwc.odscontrolled vocab:currentStatus/type/stakeholder/airo:typenow 100%, +1133 filled cells. Islands collapse into prefix-adjacency.Test on Railway
Deploy this branch →
/osint3d. The scene bakes fresh at boot (tracing::info!("osint: baked N nodes … 11-dim V3 stacked cascade")); all 11 dimension facets/chips populate; the dual-use (militaryUse:civicUse) and other orthogonal pairs cluster by shared prefix.Note
Could not
cargo-verify locally (this session's cargo fetch is network-gated); edits mirror the existing workingosint-bakepatterns and are structurally balanced. Railway's build is the verification. The standalone V3 SoA artifacts (osint_v3.soa+ codebook + NARS spread) are on this branch underdata/osint-v3/.🤖 Generated with Claude Code
Generated by Claude Code
Summary by CodeRabbit
New Features
Bug Fixes